package com.annie.boots.service;

import com.annie.boots.bean.Product;
import com.github.pagehelper.PageInfo;

import java.util.List;

public interface ProductService {
    public Product getProductById(Integer id);

    public List<Product> getListByName(String productName);
    /**
     * 分页查询接口
     * 这里统一封装了分页请求和结果，避免直接引入具体框架的分页对象, 如MyBatis或JPA的分页对象
     * 从而避免因为替换ORM框架而导致服务层、控制层的分页接口也需要变动的情况，替换ORM框架也不会
     * 影响服务层以上的分页接口，起到了解耦的作用
     * @param pageRequest 自定义，统一分页查询请求
     * @return PageResult 自定义，统一分页查询结果
     */
//    PageResult findPage(PageRequest pageRequest);

    /**
     * 分页显示
     * @param pageNum 当前页码
     * @param pageSize  每页显示的数量
     * @return  集合
     */
    List<Product> findAllProductByPageF(String productName,int pageNum,int pageSize);

    /**
     * 分页显示，返回页面详情信息
     * @param pageNum  当前页码
     * @param pageSize  每页显示的数量
     * @return  页面量信息
     */
    PageInfo<Product> findAllProductByPageS(String productName,int pageNum, int pageSize);

    public boolean delProduct(Integer id) throws Exception;

    public boolean addProduct(Product product);

    public boolean updateProduct(Product product);

}
